[速報] モデルのデバッグをできる Amazon SageMaker Debugger が発表されました!! #reinvent
こんにちは、中川です。
Keynote1 日目で Amazon SageMaker Debugger が発表されました。
Amazon SageMaker Debugger – Debug Your Machine Learning Models
Amazon SageMaker Debuggerとは
既存の TensorFlow、Keras、Apache MXNet、PyTorch、XGBoost の既存のトレーニングコードに対して、SageMaker Debugger SDK を使用して、定期的な間隔で内部モデルの状態を S3 に保存します。
状態は以下で構成されています。
- モデルによって学習されているパラメータ
- ニューラルネットワークの重みやバイアス
- オプティマイザーによって適用される変更(勾配)
- 最適化パラメータ
- 精度や損失時のスカラー値
- 各レイヤーの出力など
重み、勾配などのコレクションはテンソルに組織され、トレーニング中に使用するテンソルを決定します。SageMaker SDK とその見積もりツールを使用すると、通常と同じようにトレーニングジョブを構成し、SageMaker Debugger に適用するルールを定義する追加のパラメーターを渡せます。ルールとは、トレーニング中モデルのテンソルを分析し、特定の不要な条件を探す Python コードの一部で、勾配の爆発や消滅、変化しない損失などの一般的な問題に対して使用できます。
ルールごとにデバッグジョブが起動され、利用可能なテンソルの検査が開始され、問題を検出すると、デバッグジョブは停止し、追加情報を記録されます。また、CloudWatch Events にイベントも送信されるので、追加の自動化も可能です。
さいごに
Amazon SageMaker Debugger は、Tensorflow などの Framework での学習時にログに出てくるメトリクスを自動で SageMaker が収集してくれます。メトリクスの定義を正規表現で書く必要がなくなるので、勾配が消失する問題が改善されそうです!